Android JSONObject 与 GSON
全部标签 我目前正在使用Gson在Java中编写RSS提要解析器。我正在将RSS的XML转换为JSON,然后使用Gson将JSON反序列化为JavaPOJO(有点迂回,但这是有原因的)。就下面列出的feed#1(BBC)反序列化而言一切正常,但对于下面列出的feed#2(NPR),我开始遇到异常抛出。我想我已经确定了问题所在,但我不确定如何解决它:问题是由这两个RSS提要引起的(例如):http://feeds.bbci.co.uk/news/rss.xmlhttp://www.npr.org/rss/rss.php?id=1001对于这些不同的RSS提要,一个名为“guid”的字段被返回为a)
我有一个JSON数组,其中包含如下对象:{"bjones":{"fname":"Betty","lname":"Jones","password":"ababab","level":"manager"}}我的用户类有一个用户名,需要使用JSON对象的key。我如何获取我的JSON对象的key?我现在拥有的是获取所有内容并创建一个新的用户对象,但将用户名保留为空。这是可以理解的,因为我的JSON对象不包含“用户名”:“值”的键/值对。Gsongson=newGson();JsonParserp=newJsonParser();JsonReaderfile=newJsonReader(ne
我正在使用hibernate将对象映射到数据库。客户端(iOS应用程序)以JSON格式向我发送特定对象,我使用以下实用方法将其转换为它们的真实表示形式:/***Convertanyjsonstringtoarelevantobjecttype*@paramjsonStringthestringtoconvert*@paramclassTypetheclasstoconvertittoo*@returntheObjectcreated*/publicstaticTgetObjectFromJSONString(StringjsonString,ClassclassType){if(str
我想把一个arraylist存到磁盘,所以我用gson把它转成stringArrayListanim=newArrayList();Catc=newCat();Dogd=newDog();c.parentName="IamanimalC";c.subNameC="Iamcat";d.parentName="IamanimalD";d.subNameD="Iamdog";anim.add(c);anim.add(d);Gsongson=newGson();Stringjson=gson.toJson(anim);publicclassAnimal{publicStringparentNa
我正在使用Gson解析简单的JSON对象。我希望它在键名重复时抛出一些错误。例如{a:2,a:3}在我的例子中,Gson解析这样的JSON并将a设置为3。我希望它抛出一些异常。我知道我可以将JSON解析为映射,然后Gson在这种情况下抛出异常,但前提是重复的键没有嵌套在映射中。如果我有例如像这样的JSON:{a:2,b:{dup:1,dup:2}}仍然,它毫无异常(exception)地被解析,我只有一个值为2的“dup”。在这种情况下,我能否以某种方式设置Gson以抛出错误?或者在JsonObject实例中有重复的条目,这样我就可以自己检测到它(但我对此表示怀疑,因为它是无效的Jso
我有以下POJO:publicinterfaceShape{publicdoublecalcArea();publicdoublecalcPerimeter();}publicclassRectangleimplementShape{//Variouspropertiesofarectangle}publicclassCircleimplementsShape{//Variouspropertiesofacircle}publicclassShapeHolder{privateListshapes;//otherstuff}让GSON将ShapeHolder实例序列化为JSON没有问题
在服务器端我得到了这个API(示例)(我不能修改它。)namespaceMyNameSpace{[Serializable][DataContract]publicclassGetMyObject{[DataMember]publicDictionaryMyDictionary{get;set;}}}然后服务器发送这个JSON:{"MyDictionary":[{"Key":1,"Value":1},{"Key":2,"Value":2},{"Key":3,"Value":3},{"Key":4,"Value":4}]}在客户端,我必须创建这些类以进行正确的反序列化:classGetM
尝试序列化包含java.nio.file.Path的Object时出现java.lang.StackOverflowError即使我写:publicclassPathConverterimplementsJsonDeserializer,JsonSerializer{@OverridepublicPathdeserialize(JsonElementjsonElement,Typetype,JsonDeserializationContextjsonDeserializationContext)throwsJsonParseException{returnPaths.get(jsonE
我想使用GSON来反序列化:"starterItems":{"Appeltaart":3,"Soap_50":3}...进入GuavaImmutableMap:privateImmutableMapstarterItems;我以为我会使用常规的GSON映射解析,然后制作结果的不可变副本,如下所示:gb.registerTypeAdapter(ImmutableMap.class,newJsonDeserializer(){@SuppressWarnings("unchecked")@OverridepublicImmutableMapdeserialize(JsonElementjso
我有一个JsonObject例如JsonObjectjsonObject={"keyInt":2,"keyString":"val1","id":"0123456"}每个JsonObject都包含一个"id"条目,但其他键/值对的数量未确定,所以我想创建一个具有2个属性的对象:classmyGenericObject{Mapattributes;Stringid;}所以我希望我的属性映射看起来像这样:"keyInt"->4711"keyStr"->"val1"我找到了这个解决方案Mapattributes=newHashMap();Set>entrySet=jsonObject.ent